Computing and communication networks typically include various devices, such as servers, switches, or routers, which may receive, provide, process, or transfer data. A device may malfunction or go out of service. In order to maintain functioning of the device, the network may contain a backup for the device, which may take over when the device malfunctions or goes out of service. To do so (i.e., provide failover), an administrator (e.g., network administrator, any person responsible for the operation of a device) needs to set up a master-slave system, where a device may act as a master and a corresponding backup device may act as a slave. Failover provides the ability to use the slave instead of the master when the master fails.
A master and a slave may connect directly via one or more dedicated wires or via a bus. The use of dedicated wires may make the number of connecting wires unmanageable. An administrator may need to install, setup, and configure failover packages, protocols (e.g., election software to determine which device is the master, heartbeat software to determine when the master fails, Virtual Router Redundancy Protocol (VRRP), Common Address Redundancy Protocol (CARP), etc.), and/or configuration files (herein, collectively referred to as “failover packages”) on each individual device that may act as a master or a slave. As a result, the costs of deployment and know-how required to set up a master-slave system are exceedingly high. Furthermore, some devices may not support certain features of protocols and/or signals (e.g., Gratuitous Address Resolution Protocol (ARP) messages) required by various available failover packages. As a result, the failover mechanism provided by the installed failover packages may fail. Configuring devices to support some of the failover packages (e.g., to handle gratuitous ARP) may also negatively affect security. The available failover packages and protocols may also slow down failover by requiring devices acting as masters and slaves to store ARP caches. In addition, a master-slave system with a heartbeat running between a master and a slave may provide for only a single point of failure. As a result, for example, a split brain may occur where multiple devices begin to act as masters at the same time.